import {ISettingHelper} from "./ISettingHelper";

export interface ISettingManager {

    /// <summary>
    /// 获取游戏配置项数量。
    /// </summary>
    Count: number;


/// <summary>
/// 设置游戏配置辅助器。
/// </summary>
/// <param name="settingHelper">游戏配置辅助器。</param>
    SetSettingHelper(settingHelper: ISettingHelper): void;

/// <summary>
/// 加载游戏配置。
/// </summary>
/// <returns>是否加载游戏配置成功。</returns>
    Load(): boolean;

/// <summary>
/// 保存游戏配置。
/// </summary>
/// <returns>是否保存游戏配置成功。</returns>
    Save(): boolean;

/// <summary>
/// 获取所有游戏配置项的名称。
/// </summary>
/// <returns>所有游戏配置项的名称。</returns>
    GetAllSettingNames(): string[];


/// <summary>
/// 检查是否存在指定游戏配置项。
/// </summary>
/// <param name="settingName">要检查游戏配置项的名称。</param>
/// <returns>指定的游戏配置项是否存在。</returns>
    HasSetting(settingName: string): boolean;

/// <summary>
/// 移除指定游戏配置项。
/// </summary>
/// <param name="settingName">要移除游戏配置项的名称。</param>
/// <returns>是否移除指定游戏配置项成功。</returns>
    RemoveSetting(settingName: string): boolean;

/// <summary>
/// 清空所有游戏配置项。
/// </summary>
    RemoveAllSettings(): void;

/// <summary>
/// 从指定游戏配置项中读取布尔值。
/// </summary>
/// <param name="settingName">要获取游戏配置项的名称。</param>
/// <returns>读取的布尔值。</returns>
    GetBool(settingName: string): boolean;


/// <summary>
/// 向指定游戏配置项写入布尔值。
/// </summary>
/// <param name="settingName">要写入游戏配置项的名称。</param>
/// <param name="value">要写入的布尔值。</param>
    SetBool(settingName: string, value: boolean): void;

    GetNumber(settingName: string): number;

    SetNumber(settingName: string, value: number): void;

/// <summary>
/// 从指定游戏配置项中读取字符串值。
/// </summary>
/// <param name="settingName">要获取游戏配置项的名称。</param>
/// <returns>读取的字符串值。</returns>
    GetString(settingName: string): string;


/// <summary>
/// 向指定游戏配置项写入字符串值。
/// </summary>
/// <param name="settingName">要写入游戏配置项的名称。</param>
/// <param name="value">要写入的字符串值。</param>
    SetString(settingName: string, value: string): void;

    GetObject(settingName: string): any;

    SetObject(settingName: string, obj: any): void;

}